//
// Created by 17775 on 2024/10/12.
//

#ifndef RAYCI_SINGLE_HEADER_H
#define RAYCI_SINGLE_HEADER_H


#include <QString>
#include "RayCiPro_C.h"

class Single_Header {

public:
    explicit Single_Header(int &docId);

    // General
    QString getTitle();
    int getSizeX();
    int getSizeY();
    int getFrameCount();
    QString getUser();
    QString getComment();

    // RayCi
    QString getName();
    QString getSerial();
    QString getSetting();
    double getExposureTime();
    double getGain();
    double getOffset();
    double getTemperature();

    // Unit
    void setSpatialManually(const bool bSpatialManually, const double dSizeX, const double dSizeY) const;
    double getPixelSizeX();
    double getPixelSizeY();
    QString getSpatialUnit();
    bool setSpatialUnit(const QString &unit) const;
    void setPixelSize(double sizeX, double sizeY);
    bool isPowerManually();
    double getPower();
    QString getPowerUnit();
    void setDivergenceActive(const bool bDivergenceActive) const;

private:
    int _iSingleDocId;
};


#endif //RAYCI_SINGLE_HEADER_H
